package com.ruoyi.system.service;

import com.ruoyi.system.domain.HatchetPlan;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 还款计划 服务层
 * 
 * @author ruoyi
 * @date 2019-03-01
 */
public interface IHatchetPlanService 
{
	/**
     * 查询还款计划信息
     * 
     * @param iD 还款计划ID
     * @return 还款计划信息
     */
	public HatchetPlan selectHatchetPlanById(String iD);
	
	/**
     * 查询还款计划列表
     * 
     * @param hatchetPlan 还款计划信息
     * @return 还款计划集合
     */
	public List<HatchetPlan> selectHatchetPlanList(HatchetPlan hatchetPlan);
	
	/**
     * 新增还款计划
     * 
     * @param hatchetPlan 还款计划信息
     * @return 结果
     */
	public int insertHatchetPlan(HatchetPlan hatchetPlan);
	
	/**
     * 修改还款计划
     * 
     * @param hatchetPlan 还款计划信息
     * @return 结果
     */
	public int updateHatchetPlan(HatchetPlan hatchetPlan);
		
	/**
     * 删除还款计划信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deleteHatchetPlanByIds(String ids);
	
	/**
	 * 通过大计划的id查询银行名称和用户名
	 * @param id
	 * @return
	 */
	public HatchetPlan selectBankNameById(String id);

	/**
	 * 代理商查询下属商户的计划列表
	 * @param merchantIdList
	 * @return
	 */
	public List<HatchetPlan> selectHatchetPlanForDLS(HatchetPlan hatchetPlan);
	
	/**
	 * 查询计划完成进度 
	 * @param planId 大计划id
	 * @return 
	 */
	public double selectPlanProgress(String planId);
	
	/**
	 * 提交计划
	 * @param plan
	 * @return
	 */
	public Map<String, Object> submitPlan(String plan,String loginName);
	
	/**
	 * 查询计划总金额
	 * @param hatchetPlan
	 * @return
	 */
	public BigDecimal selectPlanSumMoney(HatchetPlan hatchetPlan);
	
	/**
	 * 代理商查询计划总金额 
	 * @param hatchetPlan
	 * @return
	 */
	public BigDecimal selectPlanDLSSumMoney(HatchetPlan hatchetPlan);
}
